package com.up.upzl.biz.repository;

import java.util.List;

import org.springframework.data.jpa.repository.Query;

import com.up.upzl.base.repository.BaseRepository;
import com.up.upzl.biz.domain.SysAccount;
import com.up.upzl.biz.domain.SysApp;

/**
 * 系统用户数据仓库
 * 
 * @author geeks
 *
 */
public interface SysAccountRepository extends BaseRepository<SysAccount, Long> {

	/**
	 * 根据账号密码查询
	 * 
	 * @param account
	 *            账号
	 * @param password
	 *            密码
	 * @return 账号对象
	 */
	SysAccount findByAccountAndPassword(String account, String password);

	SysAccount findAccountByAccount(String account);

	/**
	 * 根据用户ID查询权限
	 * 
	 * @param id
	 *            用户ID
	 * @return 权限列表
	 */
	@Query("select new SysApp(sysApp.id, sysApp.appName, sysApp.appAction, sysApp.font, sysApp.sort, sysApp.parentId) from SysAccount sysAccount join sysAccount.sysRole sysRole join sysRole.sysApps sysApp where sysAccount.id = ?1 order by sysApp.sort desc")
	List<SysApp> getSysAppsByUserId(Long id);

	/**
	 * 根据角色名称查询所有用户
	 * 
	 * @param roleName
	 * @return
	 */
	List<SysAccount> findAccountBySysRoleRoleName(String roleName);

}
